home *** CD-ROM | disk | FTP | other *** search
Wrap
GW-BASIC | 1980-01-01 | 4.7 KB | 112 lines
2 RUN "ADMAIN.BAS" 1300 COLOR 14,0:LOCATE 22,50:PRINT "KEY F1";:COLOR 3,0:PRINT " = MAIN MENU":LOCATE 1,1:RETURN 1310 CLS:LOCATE 25,10:COLOR 1,7,1:PRINT X3$;FILE$;X4$;X5$;X1$:COLOR 3,0:LOCATE 1,1:RETURN 1315 LOCATE 25,10:COLOR 1,7,1:PRINT "INTEGRATED SOFTWARE SYSTEMS";SPACE$(15);"SERIAL NUMBER: ";SNN$;:COLOR 3,0:RETURN 1400 OPEN "TEMPOR.TEM" FOR INPUT AS #1 1410 INPUT #1, FILE$,FILM$,FIL$:CLOSE #1 1500 OPEN FILM$ FOR INPUT AS #3 1510 INPUT #3,Y$,NRED,NN,FILE$,FIL$,PT$,SNN$,LP1,LP$,T1$,SND$,TN,F$:CLOSE #3 1515 DIM V$(16),D$(NN+2),C(NN+2),V(2,NN) 1520 OPEN FILE$ AS #4 LEN = 356 1525 FIELD #4, 19 AS V$(1), 19 AS V$(2), 18 AS V$(13), 34 AS V$(12), 34 AS V$(3), 34 AS V$(4), 19 AS V$(5), 14 AS V$(6), 16 AS V$(7), 12 AS V$(8), 84 AS V$(9), 19 AS V$(10), 19 AS V$(11), 5 AS V$(14), 5 AS V$(15), 5 AS V$(16) 1530 GET #4,NN+1:K=VAL(V$(16)):IK=0 1535 IF IK=>NN THEN RETURN ELSE IK=IK+1:GET #4,K 1540 C(K)=VAL(V$(16)):V(1,K)=VAL(V$(1)):V(2,K)=VAL(V$(2)):D$(K)=MID$(V$(2),5,V(2,K))+MID$(V$(1),5,V(1,K)): 1545 K=VAL(V$(14)):GOTO 1535 1562 RETURN 4500 REM 4510 X1$="SELECT PRINTER":X3$="FILE = ":X5$="FUNCTION = ":X4$=SPACE$(10):Q$=CHR$(27) 4520 IF AX$="***" THEN T1$=" THE ISS PERSONAL ADDRESS BOOK" 4540 IF PT$="I" THEN OPEN "LPT1:" FOR OUTPUT AS #2:RETURN 4545 IF PT$="N" THEN OPEN "LPT2:" FOR OUTPUT AS #2:RETURN 4550 GOSUB 1310:GOSUB 1300:PRINT "PLEASE SELECT PRINTER: " :PRINT 4570 COLOR 14,0:PRINT :PRINT " ";CHR$(186);" ";O$:PRINT " ";CHR$(186);" ";O1$:PRINT " ";CHR$(25);" ";O2$:COLOR 3,0 4580 PRINT :LOCATE 8,4:PRINT "I)BM Parallel Printer":LOCATE 9,4:PRINT "N)Serial Printer":COLOR 14,0:LOCATE 8,4:PRINT "I":LOCATE 9,4:PRINT "N" 4590 COLOR 31,0:LOCATE 5,11:PRINT "?":COLOR 3,0 4592 GOSUB 1300 4595 GOSUB 10020:DEF SEG=0: POKE 1050, PEEK(1052) 4600 PT$=INKEY$: IF PT$="" THEN 4600 ELSE PT$=CHR$(ASC(PT$) AND &HDF) 4610 IF PT$="N" THEN 4630 4620 IF PT$="I" THEN 4630 ELSE 4595 4630 IF PT$="I" THEN OPEN "LPT1:" FOR OUTPUT AS #2:GOTO 4635 4632 OPEN "LPT2:" FOR OUTPUT AS #2 4635 X1$="SELECT TITLE":GOSUB 1310 4640 PRINT "PLEASE CHOOSE THE HEADING FOR YOUR ADDRESS BOOK.":PRINT 4660 COLOR 14,0:PRINT :PRINT " ";CHR$(186);" ";O$:PRINT " ";CHR$(186);" ";O1$:PRINT " ";CHR$(25);" ";O2$:COLOR 3,0 4670 PRINT :LOCATE 8,4:PRINT "S)TORED title - ":LOCATE 8,20:COLOR 14,0:PRINT T1$:COLOR 3,0:LOCATE 9,4:PRINT "N)EW title" 4675 COLOR 14,0:LOCATE 8,4:PRINT "S":LOCATE 9,4:PRINT "N" 4680 COLOR 31,0:LOCATE 5,11:PRINT "?":COLOR 3,0 4682 GOSUB 1300 4685 GOSUB 10020:DEF SEG=0: POKE 1050, PEEK(1052) 4690 Y$=INKEY$: IF Y$="" THEN 4690 4700 IF Y$="N" OR Y$="n" THEN 4720 4710 IF Y$="S" OR Y$="s" THEN 4780 ELSE 4685 4720 GOSUB 1310 4730 PRINT "Please INPUT the TITLE of your ADDRESS BOOK (maximum length THIRTY-TWO (32) characters long)":GOSUB 1300:GOSUB 10010:LOCATE 12,15:INPUT "TITLE ... ",T$:T1$=LEFT$(T$,32) 4780 X1$="PRINT PARAMETERS":GOSUB 1310 4790 PRINT "PLEASE SELECT PRINTER VARIABLES: ":PRINT:GOSUB 1300 4800 LOCATE 4,2:PRINT "What is the length of your paper (in INCHES)? ";:GOSUB 10010:INPUT " ",LP1 4810 LOCATE 6,2:PRINT "Do you want to be prompted when printing reaches the end of the page?":LOCATE 7,4: PRINT "ENTER <";:COLOR 14,0:PRINT "Y";:COLOR 3,0:PRINT ">es or <";:COLOR 14,0:PRINT "N";:COLOR 3,0:PRINT ">o." 4815 GOSUB 10020:DEF SEG=0: POKE 1050, PEEK(1052) 4820 LP$=INKEY$: IF LP$="" THEN 4820 ELSE LP$=CHR$(ASC(LP$) AND &HDF) 4822 IF LP$="Y" OR LP$="N" THEN RETURN ELSE 4815 6000 DEF SEG=0: POKE 1050, PEEK(1052):LOCATE 1,67:PRINT "(C) 1983":LOCATE 2,62:PRINT "Date: ";DATE$:LOCATE 3,62:PRINT "Time: " 6010 Y$=INKEY$:IF Y$="" THEN LOCATE 3,69:PRINT TIME$:GOTO 6010 ELSE RETURN 6040 DEF SEG=0: POKE 1050, PEEK(1052):LOCATE 19,29:PRINT "Date: ";DATE$:LOCATE 20,29:PRINT "Time: ":GOSUB 10000 6050 LOCATE ,,0:Y$=INKEY$:IF Y$="" THEN LOCATE 20,36:PRINT TIME$:GOTO 6050 ELSE RETURN 6085 DEF SEG=0: POKE 1050, PEEK(1052):LOCATE 20,29:PRINT "Date: ";DATE$:LOCATE 21,29:PRINT "Time: ";TIME$:RETURN 7000 ON ERROR GOTO 2:ON KEY(1) GOSUB 2:KEY(1) ON:CLS:GOSUB 1315:GOSUB 1300 7001 LOCATE 8,25:PRINT "Please Wait. Reading Names." 7004 GOSUB 1400 7008 LOCATE 12,20:PRINT "Please Wait. Sorting Names before printing."; 7010 G=NN 7020 WHILE G>1 7025 G=INT(G/2):MX=NN-G:PRINT " . ";:SOUND 523,1 7030 F=0 7035 FOR I=1 TO MX:P=I+G 7040 IF D$(I)<=D$(P) THEN 7050 7045 SWAP D$(P),D$(I):SWAP C(P),C(I):SWAP V(1,P),V(1,I):SWAP V(2,P),V(2,I):F=1 7050 NEXT 7055 IF F>0 THEN 7030 7060 WEND 7065 GOSUB 4500 7070 TN=LEN(T1$) 7080 TN=INT((70-TN)/2 +0.5) 7085 CLS:GOSUB 1315:COLOR 0,7:LOCATE 12,26:PRINT "Turn on printer and hit any key.":GOSUB 1300 7086 Y$=INKEY$:IF Y$="" THEN 7086 7087 LOCATE 12,26:PRINT SPACE$(40):LOCATE 12,31:COLOR 16,7:PRINT "WORKING":COLOR 3,0 7089 GOSUB 7500 7090 NM=INT(NN/2+0.5) 7092 MP1=LP1*6-9:K=1 7100 FOR I= 1 TO NM 7101 IF MP<MP1 THEN 7110 ELSE K=K+1 7102 IF LP$="N" OR LP$="n" THEN 7105 ELSE PRINT "Advance paper and hit any key to continue" 7103 Y$=INKEY$:IF Y$="" THEN 7103 7104 PRINT #2, TAB(35);"-";K;" -":PRINT #2,:PRINT #2, :MP=6:GOTO 7110 7105 MP2=MP1-MP+12:FOR J= 1 TO MP2:PRINT #2,:NEXT J:PRINT #2, TAB(35);"- ";K;" -":PRINT #2,:PRINT #2,:MP=6 7110 A$=RIGHT$(D$(I),V(1,I))+" "+LEFT$(D$(I),V(2,I)):N1=LEN(A$):N1=35-N1 7111 IF I+NM>NN THEN V$(1)="":V$(2)="" 7112 IS$=STR$(I):IS1$=STR$(I+NM):IF I<=9 THEN IS$=" "+IS$ 7113 IF I+1<=9 THEN IS1$=" "+IS1$ 7114 IF I>9 AND I<100 THEN IS$=" "+IS$ 7115 IF I+1>9 AND I<100 THEN IS1$=" "+IS1$ 7120 IF I+NM<=NN THEN PRINT #2, TAB(3);IS$;". ";A$;SPACE$(N1);IS1$;". ";RIGHT$(D$(I+NM),V(1,I+NM));" ";LEFT$(D$(I+NM),V(2,I+NM)):MP=MP+1:GOTO 7130 7125 PRINT #2, TAB(3);IS$;". ";A$ 7130 NEXT I 7132 PRINT #2, CHR$(12) 7135 RUN "ADMAIN.BAS" 7500 IF AX$="***" THEN 7505 7501 DIM DQ$(12):FOR I= 1 TO 12:READ DQ$(I):NEXT 7502 DATA JANUARY, FEBRUARY,MARCH,APRIL,MAY,JUNE,JULY,AUGUST,SEPTEMBER,OCTOBER,NOVEMBER,DECEMBER 7505 REM 7650 PRINT #2, 7660 PRINT #2, SPACE$(TN);T1$ 7670 B=VAL(LEFT$(DATE$,2)) 7680 PRINT #2,:PRINT #2, SPACE$(30);DQ$(B);" ";MID$(DATE$,4,2);", 19";RIGHT$(DATE$,2):PRINT #2, 7690 PRINT #2, 7700 MP =10 7710 RETURN 10000 IF SND$="N" THEN RETURN ELSE FOR A%=1 TO 3:SOUND 1000*A%,1:NEXT:FOR A%=3 TO 1 STEP -1:SOUND 1000*A%,1:NEXT:RETURN 10010 IF SND$="N" THEN RETURN ELSE FOR A%=1 TO 4:SOUND 500*A%,2:NEXT:RETURN 10020 IF SND$="N" THEN RETURN ELSE BEEP:RETURN